import { ref } from 'vue';
import unitRequest from '@/api/md/unit/unit.js';

export const unitList = ref([]);  // 全部数据
export const pagedData = ref([]);  // 分页后的数据
export const total = ref(0);  // 总数据条数
export const pageSize = ref(10);  // 每页条数
export const currentPage = ref(1);  // 当前页码

// 查询条件
export const searchUnit = ref({
    unitName: '',  // 分类名称
    unitCode: ''   // 分类编码
});

// 分页处理函数
export function handlePageChange(page) {
    currentPage.value = page;
    paginateData();
}

// 根据当前页码和每页条数分页
export function paginateData() {
    const start = (currentPage.value - 1) * pageSize.value;
    const end = start + pageSize.value;
    pagedData.value = unitList.value.slice(start, end);
}

// 获取数据
export function fetchUnitList(searchUnit) {
    unitRequest.loadUnitList(searchUnit, function (data) {
        unitList.value = data.data;
        total.value = unitList.value.length;  // 设置总条数
        paginateData();  // 设置分页后的数据
    });
}

// 搜索重置
export function resetSearch() {
    searchUnit.value.unitCode = '';
    searchUnit.value.unitName = '';
    fetchUnitList(searchUnit.value);
}

// 删除选中的单位
export function deleteUnits(selectedUnits) {
    return new Promise((resolve, reject) => {
        const unitIds = selectedUnits.map(unit => unit.unitId); // 获取选中的unitId数组
        unitRequest.deleteUnitList(unitIds, function (res) {
            if (res.code === 200) {
                resolve();
            } else {
                reject(res.message);
            }
        });
    });
}